/*
    思路： 
        找出中间元素，首先剔除出来
        将数组剩余元素与中间元素进行比较，分出左右两边两个数组
        然后进行递归操作， 当还剩一个元素的时候结束递归
*/

let arr = [29,10,14,37,4]

function quickSort(arr) {
    if (arr.length <= 1) return arr

    let minIndex = Math.floor(arr.length / 2)
    let minEle = arr.splice(minIndex, 1)[0]
    console.log(minEle)

    let leftArr = []
    let rightArr = []

    for(let i=0;i<arr.length;i++) {
        if (arr[i] < minEle) {
            leftArr.push(arr[i])
        } else {
            rightArr.push(arr[i])
        }
    }

    return quickSort(leftArr).concat([minEle], quickSort(rightArr))
}
console.log(quickSort(arr))